abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 05:33 | Nová verze

    OpenTofu, tj. svobodný a otevřený fork Terraformu vzniknuvší jako reakce na přelicencování Terraformu z MPL na BSL (Business Source License) společností HashiCorp, bylo vydáno ve verzi 1.7.0. Přehled novinek v aktualizované dokumentaci. Vypíchnout lze State encryption.

    Ladislav Hagara | Komentářů: 0
    včera 23:55 | Humor

    Spouštět webový prohlížeč jenom kvůli nákupu kávy? Nestačí ssh? Stačí: ssh terminal.shop (𝕏).

    Ladislav Hagara | Komentářů: 2
    včera 18:11 | Nová verze

    Yocto Project byl vydán ve verzi 5.0. Její kódové jméno je Scarthgap. Yocto Project usnadňuje vývoj vestavěných (embedded) linuxových systémů na míru konkrétním zařízením. Cílem projektu je nabídnou vývojářům vše potřebné. Jedná se o projekt Linux Foundation.

    Ladislav Hagara | Komentářů: 0
    včera 17:56 | Nová verze

    Operační systém 9front, fork operačního systému Plan 9, byl vydán v nové verzi "do not install" (pdf). Více o 9front v FQA.

    Ladislav Hagara | Komentářů: 0
    včera 13:11 | Nová verze

    Svobodná webová platforma pro sdílení a přehrávání videí PeerTube (Wikipedie) byla vydána v nové verzi 6.1. Přehled novinek i s náhledy v oficiálním oznámení a na GitHubu. Řešeny jsou také 2 bezpečnostní chyby.

    Ladislav Hagara | Komentářů: 3
    včera 12:33 | Zajímavý software

    Lennart Poettering na Mastodonu představil utilitu run0. Jedná se o alternativu k příkazu sudo založenou na systemd. Bude součástí systemd verze 256.

    Ladislav Hagara | Komentářů: 14
    29.4. 23:22 | Nová verze

    Hudební přehrávač Amarok byl vydán v nové major verzi 3.0 postavené na Qt5/KDE Frameworks 5. Předchozí verze 2.9.0 vyšla před 6 lety a byla postavená na Qt4. Portace Amaroku na Qt6/KDE Frameworks 6 by měla začít v následujících měsících.

    Ladislav Hagara | Komentářů: 12
    29.4. 21:44 | Komunita

    Ubuntu 24.10 bude Oracular Oriole (věštecká žluva).

    Ladislav Hagara | Komentářů: 13
    29.4. 20:22 | Nová verze

    Byla vydána nová verze 2.45.0 distribuovaného systému správy verzí Git. Přispělo 96 vývojářů, z toho 38 nových. Přehled novinek v příspěvku na blogu GitHubu a v poznámkách k vydání. Vypíchnout lze počáteční podporu repozitářů, ve kterých lze používat SHA-1 i SHA-256.

    Ladislav Hagara | Komentářů: 0
    29.4. 13:33 | IT novinky

    Před 25 lety, ve čtvrtek 29. dubna 1999, byla spuštěna služba "Úschovna".

    Ladislav Hagara | Komentářů: 0
    KDE Plasma 6
     (75%)
     (8%)
     (2%)
     (16%)
    Celkem 889 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    Rozcestník

    Tisk v Linuxu pomocí balíku PSUtils

    4. 3. 2004 | Tomáš Pěnička | Návody | 8580×

    Oboustranný tisk, tisk více stran na jeden list, sestavování sešitu. Pokud vám něco chybělo v nedávném článku o oboustranném tisku, najdete to zde.

    V nedávné době vyšel na ABCLinuxu článek s návodem k oboustrannému tisku v Linuxu. Článek nevyčerpal všechny možnosti, které mohou nastat, proto jsem se jej rozhodl doplnit.

    Abstrakt

    Řešíme úlohu, jak v Linuxu co nejpohodlněji tisknout oboustranně na tiskárně, která to sama o sobě neumí. Dále se podíváme na postup, jak tisknout více zmenšených stránek na jeden list papíru a nakonec, jak si vytisknout sešit. Předpokládáme, že materiál k tisku je připraven v postscriptovém souboru. Tento předpoklad není nijak omezující, protože z většiny aplikací se dá vymámit PostScript. Použijeme balík psutils, který je snad ve všech distribucích.

    Balík psutils

    Balík psutils je soubor programů, které umí různé kejkle s postscriptovými soubory. Mimo jiné spojení více souborů do jednoho (psmerge, funguje ve velmi speciálních případech, ještě se mi to nepovedlo), výběr některých stránek (psselect), zmenšení a umístění více stránek na jeden list papíru (psnup) a přeuspořádání stránek pro tisk sešitu (psbook, viz dále).

    Jednotlivé programy z balíku psutils se dají pospojovat rourami. Pokud nezadáte výstupní soubor, tak se výsledek vysype na standardní výstup, pokud navíc nezadáte vstupní soubor, data se berou ze standardního vstupu. Spojením několika programů do kolony se dají dělat velké věci.

    Oboustranný tisk - teorie

    Tady se zaměříme na praktickou stránku věci. Oželíme výklad suché teorie a dáme řešení pro různé situace. Předpokládáme, že tiskárna splňuje následující podmínky:

    1. Ze zásobníku si tiskárna bere horní papír.
    2. Na výstupu z tiskárny padá papír na dříve vytištěné (tj. na vršek hromádky).

    Pokud Vaše tiskárna pracuje jinak, čtěte přesto dále.

    Odpovězte si na následující 2 výroky, které se týkají konstrukce tiskárny.

    1. Tiskne se na tu stranu papíru, která je v zásobníku nahoře. Pokud tiskárna nesplňuje bod a.), znegujte odpověď a všude, kde se v bodech i.) až iv.) mluví o zásobníku papíru, prohoďte strany nahoře a dole.
    2. Papír vyjede z tiskárny vytištěnou stranou nahoře. Pokud tiskárna nesplňuje bod b.), znegujte odpověď.

    Mohou nastat 4 případy odpovědí. Popíšeme postup, jak nakonec dostat oboustranně vytištěné stránky seřazené ve správném (tj. vzestupném) pořadí.

    1. Odpovědi jsou (ano, ano) - toto je nejjednodušší případ. Vytiskneme liché stránky, vytištěné listy vrátíme do zásobníku tiskem dolů a vytiskneme sudé stránky. Pokud bylo lichých stránek více než sudých, poslední z nich zůstane v zásobníku, takže je třeba ji zase vytáhnout nebo ji tam ani nedávat.
    2. Odpovědi jsou (ne, ne) - toto je stále jednoduchý případ. Vytiskneme sudé stránky, vytištěné listy vrátíme do zásobníku tiskem nahoru a vytiskneme liché stránky. Pokud bylo lichých stránek více než sudých, tak si tiskárna vezme ze zásobníku o jeden list víc, než jsme do něj předtím vrátili.

      Obě předchozí varianty jsou jednoduché v tom smyslu, že nevyžadují tisk stránek v obráceném pořadí. V těchto případech si vystačíme například s programem gv.

    3. Odpovědi jsou (ano, ne) - nejprve vytiskneme sudé stránky v obráceném pořadí (vytištěné listy vrátíme do zásobníku tiskem dolů) a potom liché (v normálním pořadí). Pokud je lichých stránek víc, tak si tiskárna vezme ze zásobníku o jeden list víc, než jsme do něj předtím vrátili.
    4. Odpovědi jsou (ne, ano) - nejprve vytiskneme liché stránky v obráceném pořadí (vytištěné listy vrátíme do zásobníku tiskem nahoru) a potom sudé (v normálním pořadí). Pokud je lichých stránek víc, tak si tiskárna vezme ze zásobníku o jeden list víc, než jsme do něj předtím vrátili.

    Neřešíme způsob, jak se listy otáčí. Závisí to totiž na požadovaném výsledku (jestli tiskneme na výšku nebo na šířku). Když se uživatel trochu zamyslí, tak na to přijde. Ještě na to přijde řeč.

    Případy (ano, ano) a (ne, ne) a jsou si podobné. Nedají se však spojit, protože vytištěné stránky by vždy v jednom z obou případů byly špatně (sestupně) seřazené. Stejně to platí i pro případy (ano, ne) a (ne, ano).

    Oboustranný tisk - praxe

    Jeden ze způsobů oboustranného tisku je pomocí programu psselect z balíku psutils. Program psselect má řadu způsobů, jak říct, které stránky chceme vybrat. Samozřejmostí je výběr sudých (parametr -e) a lichých (-o) stran. Dále se dají strany specifikovat výčtem a rozsahem (-p). Také se dá obrátit pořadí stránek (-r). Jednotlivé volby se dají kombinovat.

    Následující skript vytiskne (s malou pomocí uživatele) oboustranně postscriptový soubor. Předpokládáme, že skript slouží pro tisk na jedné tiskárně, takže příslušné parametry se nastaví přímo ve skriptu a jako parametr se bude předávat jen jméno souboru. Neuvažujeme případ tiskáren s více zásobníky a výstupními drahami, kde jsou odpovědi na výroky 1.) a 2.) různé pro různé zásobníky a výstupní dráhy. Takové tiskárny by mohly umět oboustranný tisk samy a pokud neumí, tak se dá skript upravit.

    #!/bin/bash
    #Použití: $0 soubor_k_tisku.ps
    #Začátek nastavení
    #Na kterou stranu papíru v zásobníku se tiskne. 1=horní, 0=dolní
    input=
    #Na které straně papíru je na výstupu tisk. 1=horní, 0=dolní
    output=
    printcommand='lpr'
    psselect='psselect'
    #Konec nastavení
    #Nastavení výpisů a proměnných
    file=$1
    messagedown="Až se dotiskne, tak vytištěné papíry vraťte do zásobníku tiskem dolů\n a stiskněte Enter."
    messageup="Až se dotiskne, tak vytištěné papíry vraťte do zásobníku tiskem nahoru\n a stiskněte Enter."
    odd="Tisknou se liché stránky."
    oddreverse="Tisknou se pozpátku liché stránky."
    even="Tisknou se sudé stránky."
    evenreverse="Tisknou se pozpátku sudé stránky."
    done="Hotovo"
    #začátek vlastního skriptu
    if [ $input -eq 1 ]
    then
      if [ $output -eq 1 ]
      then
        echo $odd
        $psselect -o $file | $printcommand
        echo -e $messagedown
        read nothing
        echo $even
        $psselect -e $file | $printcommand
        echo $done
      else
        echo $evenreverse
        $psselect -e -r $file | $printcommand
        echo -e $messagedown
        read nothing
        echo $odd
        $psselect -o $file | $printcommand
        echo $done    
      fi
    else
      if [ $output -eq 1 ]
      then
        echo $oddreverse
        $psselect -o -r $file | $printcommand
        echo -e $messageup
        read nothing
        echo $even
        $psselect -e $file | $printcommand
        echo $done
      else
        echo $even
        $psselect -e $file | $printcommand
        echo -e $messageup
        read nothing
        echo $odd
        $psselect -o $file | $printcommand
        echo $done    
      fi
    fi

    Více stránek na jeden list

    Ve své práci jsem řešil problém, jak vytisknout spoustu grafů tak, aby jich bylo více na stránce. Prvním řešením je přesvědčit aplikaci, která grafy generuje, aby je tak zrovna vytiskla (uložila do PostScriptu), druhým řešením je vygenerovat grafy po jednom na stránce a dodatečně je zmenšit a seskupit na stránku.

    K tomuto úkolu se hodí program psnup. Umí seskupit více logických stránek na jeden list papíru. Jako parametr si vezme počet stránek na list papíru a sám rozhodne, jak je na stránku umístit tak, aby co nejlépe využil plochu. Někdy použije papír naležato (landscape). Pokud uzná, že plochu využít neumí, tak to oznámí a neudělá nic. Nedá se mu nijak domluvit. V praxi to znamená, že na jeden list nemůžeme umístit 7, 11, 13, 17... stránek. Ostatní počty zvládá. Dále se dá nastavit velikost papíru (na vstupu i výstupu), okraje papíru (-m), okraje logických stránek (-b), způsob umisťování jednotlivých stránek (po sloupcích -c nebo řádcích - standard), linky mezi stránkami (-d) atd., viz man psnup.

    Příklad 1: chceme stránky ze souboru vstup.ps umístit po čtyřech a uložit do souboru vystup.ps, uděláme to takto:

    psnup -4 vstup.ps > vystup.ps

    Tisk sešitu

    Někdy se hodí vytisknout text tak, že z něho vytvoříme sešit, tj. vytiskneme oboustranně, přeložíme v půlce a sešijeme (vhodné pro krátké články, manuály apod.). Seřadit správně stránky dá docela hodně přemýšlení. Například, pokud máme 12 logických stránek, tak na první list vytiskneme z jedné strany stránky 12 a 1 a z druhé 2 a 11 , na druhý list 10+3 a 4+9 atd. Principiálně by to šlo i programem psselect, ale psbook se hodí lépe.

    psbook se používá ve spojení s programem psnup tak, že výstup psbook se prožene přes psnup -2 a výsledek oboustranně vytiskneme. Pokud si prohlédnete vazbu nějaké staré knihy, uvidíte, že je svázána z mnoha malých sešitků (v angličtině se používá slovo signature). I na toto psbook pamatuje parametrem -s, kde se mu musí předhodit číslo, které je násobkem 4 a znamená počet stránek v jednom sešitku. Pokud neuvedeme nic, nacpe celý soubor do jednoho sešitku. Pokud není počet stránek v souboru násobkem počtu stránek v sešitku, tak se doplní prázdnými stranami.

    Příklad 2: Používám k úspornému tisku skript kniha.sh, který zmenší stránky formátu A4 a umístí je po dvou na list papíru. Výstup skriptu vytisknu oboustranně a dostanu tím sešitek. Použití je následující:

    kniha.sh vstup.ps > vystup.ps

     

    #!/bin/sh file=$1
    psbook $file | psnup -2

    Příklad 3: Osobně tisknu pro oddíl zpěvník pomocí TeXu a psutils takto: Připravím si zpěvník ve formátu A5 jako soubor vstup.dvi. Následující skript připraví soubor pro tisk. Použití je

    zpevnika5 vstup

    (bez .dvi) a výsledek najdu v souboru vstup_vysledek.ps (výstup se dá samozřejmě upravit).

    #!/bin/bash
    dvips -t a5 $1
    psbook $1.ps | psnup -2 -p a4 -P a5 > $1_vysledek.ps

    Parametr -p a4 znamená požadovaný formát výstupu, kdežto -P a5 je formát vstupu. Našel jsem chybu programu psnup - v tomto případě je ve výsledném postscriptovém souboru špatně uvedený formát, a to A5 místo A4. Musí se ručně přepsat na A4 (osmý řádek souboru). Nemám nejnovější verzi psnup, takže nevím, jestli není chyba už opravená.

    Otáčení kolem dlouhé a krátké strany papíru

    Otáčení papíru při oboustranném tisku se dá popsat jednoduše. Předpokládejme, že papír prolézá tiskárnou po délce.

    Pokud tiskneme na výšku (jedna strana na list, listy svážeme na delší straně), otáčíme kolem delší strany papíru. Pokud bychom ale chtěli z nějakého důvodu papíry sešít na horní (kratší) straně a otáčet listy nahoru, tak bychom otáčeli kolem kratší strany papíru.

    Pokud tiskneme sešitek (tj. na šířku), otáčíme kolem kratší strany papíru. Toto se týká obou výše uvedených příkladů.

    Zvláštní situace nastává, pokud sice máme dvě stránky na listu papíru, ale hodláme je sešít do kroužkové vazby tak, že je sešijeme na delší straně papíru. Znamená to, že při prohlížení před námi papíry leží naležato a otáčíme je nahoru. Hodí se to, pokud si okopírujete nějakou knihu po dvojlistech. V takovém případě se papíry otáčí kolem delší strany papíru.

    Než se pustíte do tisku, podívejte se, jestli náhodou tiskárna neotáčí papíry sama. Například, pokud se papír dává do tiskárny zepředu a zase předem vyleze, tak už je otočený kolem kratší strany. Pokud si nejste jisti, musíte na otestování obětovat jeden list papíru.

    Závěr

    Předvedený postup má výhodu v tom, že k oboustrannému tisku nepotřebuje spolupráci správce systému. Stačí, když funguje (jednostranný) tisk. Příslušné skripty si uživatel uloží do svého vlastního adresáře se skripty (typicky to je ~/bin a někde v .bashrc si přidá tento adresář do cesty).

           

    Hodnocení: 42 %

            špatnédobré        

    Nástroje: Tisk bez diskuse

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    Stanislav Brabec avatar 4.3.2004 11:33 Stanislav Brabec | skóre: 45 | Praha
    Rozbalit Rozbalit vše zrcadlové převrácení
    A pokud snad někdo potřebuje patch na zrcadlové převrácení, najde ho tady. Kdysi jsem potřeboval tisknout hotový PostScript na pauzáky, tak jsem to tam přidal.
    5.3.2004 08:59 Josef
    Rozbalit Rozbalit vše Další užitečnosti k tématu
    Za přečtení a na doplnění stojí za zmínku článek o PSUtils na serveru Grafika.cz.

    S tématikou souvisí i následující články, některé zmiňují i jiné nástroje pro další operační systémy:

    Softwarové nástroje pro archovou montáž: Přehled

    Je Linux použitelný v pre-pressu?

    Softwarové nástroje pro archovou montáž: Přehled

    A abych si nakonec přihřál svoji polívčičku, měl by ještě na mých starých stránkách viset popis řešení jedné méně ovyklé, ale tehdy potřebné montáže čtyř stránek na jednu oboustranně.

    Pohoda, hezký den

    Josef
    6.3.2004 10:19 petris
    Rozbalit Rozbalit vše více stránek přessebe
    Zdravim, potřeboval bych dostat 2 stránky přessebe na jednu stránku (mají se překrývat, něco jako dvě vrstvy v Gimpu). Nevíte někdo jak na to?
    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.